﻿using System.ComponentModel.DataAnnotations;

namespace Domain
{
        /// <summary>
        /// 溯源基本信息类
        /// </summary>
        public class TraceabilityInfo : AuditableEntity
        {
            /// <summary>
            /// 溯源编号（格式A001，自增）
            /// </summary>
            [Key]
            public string TraceabilityId { get; private set; }

            /// <summary>
            /// 商品名称（不为空）
            /// </summary>
            public string ProductName { get; set; }

            /// <summary>
            /// 生产批次（不为空）
            /// </summary>
            public string ProductionBatch { get; set; }

            /// <summary>
            /// 保质期（不为空）
            /// </summary>
            public string ShelfLife { get; set; }

            /// <summary>
            /// 生产许可证号（不为空）
            /// </summary>
            public string ProductionLicense { get; set; }

            /// <summary>
            /// 生产企业（不为空）
            /// </summary>
            public string Manufacturer { get; set; }

            /// <summary>
            /// 封面图（不为空）
            /// </summary>
            public string CoverImage { get; set; }

            /// <summary>
            /// 构造函数，自动生成溯源编号
            /// </summary>
            public TraceabilityInfo()
            {
                // 使用GUID生成唯一标识，确保不会重复
                TraceabilityId = $"A{Guid.NewGuid().ToString("N").Substring(0, 3)}";
            }
        }
    
}
